package listbyorder.access001_100.test89;

import java.util.ArrayList;
import java.util.List;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/5 11:06
 */
public class Solution1 {

    // 自己的方法————天秀
    public List<Integer> grayCode(int n) {
        List<Integer> ans = new ArrayList<>();
        if (n == 0) {
            ans.add(0);
            return ans;
        }
        // 初始化ans
        ans.add(0);
        ans.add(1);
        if (n == 1) return ans;
        int add = 1;
        for (int i = 2; i <= n; i++) {
            int size = ans.size();
            add *= 2;
            for (int j = size - 1; j >= 0; j--) {
                ans.add(ans.get(j) + add);
            }
        }
        return ans;
    }
}
